package io.shallwe._admin.account;

import com.jfinal.kit.Kv;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;

public class AdminAuthService {

	/**
	 * 是否为超级管理员，role.id 值为 1 的为超级管理员
	 */
	public boolean isSuperAdmin(String accountId) {
		String ret = Db.template("auth.isSuperAdmin", accountId).queryStr();
		return ret != null;
	}

	/**
	 * 当前账号是否拥有某些角色
	 */
	public boolean hasRole(String accountId, String[] roleNameArray) {
		if (roleNameArray == null || roleNameArray.length == 0) {
			return false;
		}

		Kv data = Kv.by("accountId", accountId).set("roleNameArray", roleNameArray);
		String ret = Db.template("auth.hasRole", data).queryStr();
		return ret != null;
	}

	/**
	 * 是否拥有具体某个权限
	 */
	public boolean hasPermission(String accountId, String actionKey) {
		if (StrKit.isBlank(actionKey)) {
			return false;
		}

		String ret = Db.template("auth.hasPermission", actionKey, accountId).queryStr();
		return ret != null;
	}
}